home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / Apps / AudioApps / Resound / SoundTable.h < prev    next >
Text File  |  1992-12-20  |  3KB  |  93 lines

  1. /*
  2.  
  3. March 25, 1992
  4.  
  5. The Sound Table
  6.  
  7. This requires some explaining.  The Sound Table is a true data type, which stores away (implemented in
  8. several arrays) sounds, soundviews, windows, and other information, by some key.  Accessing it generally works like this:
  9.  
  10.     Look for this sound (or window or soundview)
  11.     Now give me the associated window (or soundview, or sound)
  12.     
  13. "Finding" sets the pointer to the current cluster of information (a sound, a soundview, a window, and
  14. the booleans below), and "returning" returns information according to the current pointer...
  15.  
  16. Sound Table also stores the current position a new window will fill.
  17.  
  18. SOUNDTABLE IS ONLY TO BE USED BY THE FILE MANAGER.  IF YOU NEED THE CURRENT SOUND, SOUNDVIEW, ETC.
  19.  
  20. DO NOT ACCESS IT DIRECTLY.  ACCESS IT USING METHODS IN THE FILEMANAGER.
  21.  
  22. */
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. #import <objc/Object.h>
  30.  
  31. #define MAX_NUMBER_OF_SOUNDS 256                    // Yes, Yes, I know.  The object is an array...
  32.  
  33. @interface SoundTable:Object
  34. {
  35.  
  36.     id SoundID [MAX_NUMBER_OF_SOUNDS];                // The Sound, by key number
  37.     id SoundViewID [MAX_NUMBER_OF_SOUNDS];            // Its associated SoundView
  38.     id WindowID [MAX_NUMBER_OF_SOUNDS];                // Its associated Window
  39.     BOOL SoundChanged [MAX_NUMBER_OF_SOUNDS];        // Whether the sound has changed
  40.     BOOL SoundUntitled [MAX_NUMBER_OF_SOUNDS];        // Whether the window is untitled
  41.     id String [MAX_NUMBER_OF_SOUNDS];                // The Filename
  42.     int StartPosX;                                    // The first position for a window, x and y
  43.     int StartPosY;
  44.     int PosX;                                        // The current position for a window, x and y
  45.     int PosY;
  46.     int CurrentNumber;                                // Number of windows/sounds open
  47.     int Current;                                    // Pointer (key) to the current sound/window etc.
  48.     int WindowPosCount;                                // How much to offset the windows...
  49. }
  50.  
  51. - init;
  52. - (int) NewItem:ThisSound:                 // Returns 0 if unable
  53.                 ThisSoundView:          // otherwise returns sound number
  54.                 ThisWindow:
  55.        (char *)    ThisFileName:
  56.          (BOOL) ItsUntitled;
  57.        
  58. - Delete;                                //Deletes Current Sound
  59. - (int) Total;                            //Total Number of Sounds
  60.  
  61. - SoundEdited;                            //Sets the Edited Flag to YES
  62. - SoundReset;                            //Sets the Edited Flag to NO
  63. - (BOOL) FindChangedSound;                //Finds the next Edited Sound
  64. - (BOOL) IsSoundChanged;                //Returns Edited Flag
  65.  
  66. - (BOOL) FindSound: ThisSound;            //All these return NO if unable
  67. - (BOOL) FindWindow: ThisWindow;
  68. - (BOOL) FindSoundView: ThisSoundView;
  69. - (BOOL) Previous;
  70. - (BOOL) Next;
  71.  
  72. - SetSound: ThisSound;
  73. - SetWindow: ThisWindow;
  74. - SetSoundView: ThisSoundView;
  75. - SetFileName: (const char *) ThisFileName;
  76.  
  77. - ReturnSound;
  78. - ReturnWindow;
  79. - ReturnSoundView;
  80. - (const char*) ReturnFileName;
  81. - (BOOL) ReturnUntitled;                //Returns whether or not the window file is untitled
  82.  
  83.  
  84. /* for some bizaare reason I made the Sound Table also handle new window positions, so the
  85.     windows would cascade nicely.  Don't ask... */
  86.  
  87.  
  88. - NewWindowPos;                            // make current setting = a new settting
  89. - (int) WindowPosX;                        // X and Y coordinates of the current setting
  90. - (int) WindowPosY;
  91.  
  92. @end
  93.